class: center, title-slide .title[ # Control de versiones con Git, GitHub y RStudio ] .author[ ### Alejandra Medina Rivera, Erick Cuevas Fernández
01 de agosto de 2022 ] --- class: inverse .pull-right[<br> <img src="data:image/png;base64,#css/xolo.png" width="80%" style="display: block; margin: auto;" /> ] # Agradecimientos Este contenido se basó en: - "Happy Git with R" de Jenny Bryan, los STAT 545 TAs, Jim Hester [https://happygitwithr.com/](https://happygitwithr.com/) --- # ¿Por qué hacer control de versiones de nuestros proyectos? - Los proyectos suelen cambiar y crecer. - Es difícil saber cuáles fueron todos los cambios a lo largo del tiempo (en especial tiempos largos ⏳, hazlo por tu **yo** del futuro 👽). - Las colaboraciones se pueden complicar sin un buen control de versiones 🔆. - Seguridad de tu información 🔐. --- .pull-left[<br> <img src="data:image/png;base64,#img/git_why.png" width="80%" style="display: block; margin: auto;" /> ] .pull-right[<br> <img src="data:image/png;base64,#img/git.png" width="80%" style="display: block; margin: auto;" /> ] --- # Git - Git es un sistema de control de versiones. - Git funciona con GitHub, Bitbucked o Gitlab - ¿Por qué usar Git en vez de solo renombrar los archivos? Porque es mejor tener una filogenia del archivo. <img src="data:image/png;base64,#img/git_logo.png" width="60%" style="display: block; margin: auto;" /> --- # Versión de controles a mano vs Git <img src="data:image/png;base64,#img/git_control.png" width="65%" style="display: block; margin: auto;" /> --- Con Git cada contribuidor tiene una copia del repositorio central, con todos los archivos y la historia de los cambios por los que han pasado. <img src="data:image/png;base64,#img/git_repo.png" width="50%" style="display: block; margin: auto;" /> --- # GitHub GitHub es una plataforma que permite guardar código en forma de repositorios Git. <img src="data:image/png;base64,#img/github.png" width="60%" style="display: block; margin: auto;" /> --- # Proyectos colaborativos - GitHub se parece más a un GoogleDoc que a un Word Document. - Es fácil que los colaboradores hagan cambios y también es fácil saber quién hizo que. - El dueño del proyecto puede dar permisos a los diferentes colaboradores. - También existen organizaciones, esto puede ser útil para manejar los permisos de grupos grandes de colaboración. --- # R en GitHub - 👍 La comunidad de R es muy activa en GitHub. Hay muchos paquetes ahí, como el **tidyverse**. - 👍 Al ser parte de GitHub será más fácil que su código se utilice por la comunidad. - 👍 GitHub y RStudio se conectan muy bien. - 👍 Si R no es su lenguaje favorito, también se pueden beneficiar de usar RStudio para manejar su repositorio. --- # ¿Qué necesitamos para que funcione? 👀 Para este punto necesitamos tener **Git** en la computadora. ⚠️ En caso de que aún no lo hayas instalado, lo puedes descargar en el siguiente enlace [https://git-scm.com/downloads](https://git-scm.com/downloads). 💻 En la terminal: `which git` y `git --version` 👉 Necesitamos que Git se conecte con GitHub (o la plataforma que desees usar, puede ser GitLab o Bitbucked). Por tanto necesitamos una cuenta en GitHub. ☝️ Luego necesitamos que R este enlazado con este repositorio. Tomemos un tiempo para revisar que todo esté en orden. --- # Recomendaciones generales y `Rproj` 📁 Es mejor organizar todo en un RStudio Project, para dedicar un directorio exclusivo a cada proyecto. 📌 Hacer un repositorio Git. Se trabaja como siempre, solo además de guardar, no olvides hacer `commit`. ✏️ De vez en cuando has `push` de los cambios cuando los hayas **verificado** --- class: chapter-slide # Manos a la obra! --- # Primeros pasos 1. Familiarizarnos y conectarnos a GitHub. 2. Revisar que Git este enlazado a RStudio. 3. Crear un repositorio con GitHub. --- # Creación de repositorio 1. Hagan login y creen un repositorio nuevo. Denle nombre: "repo_cdsb2022". 2. Añadan una descripción e inicialicen el repositorio con un README. 3. Para lo demás usen los defaults. 4. Den click en "Create repository". --- # Creación de TOKEN en GitHub --- # Clonar repositorio - Ya tenemos el repositorio en GitHub. - Para de verdad poder usarlo, lo tenemos que traer a nuestras computadoras. **A clonar!** - Copien la liga en **"Clone or download"**. - Vamos al `path` en que vayamos a trabajar. ```bash git clone https://github.com/you/your_repo ``` --- # Usemos el repositorio Vamos a usar el repositorio como nuestro lugar de trabajo: ```bash cd myrepo ls -la head README.md git remote show origin ``` ¿Qué nos dice este comando? --- # Usemos el repositorio Probemos haciendo un cambio en el README ```bash echo "Agregue algo al README" >> README.md git status ``` Ahora tenemos que decirle a git que queremos seguir los cambios de ese archivo. Vamos a comentar los cambios `commit` y luego subirlos `push` a GitHub ```bash git add README.md git commit -m "A commit from my local computer" git push ``` --- .pull-left[<br><br><br><br><br><br><br> .center[ # ¡Gracias! ] ] .pull-right[<br> <img src="data:image/png;base64,#css/xolo.png" width="80%" style="display: block; margin: auto;" /> ]